SCADA Пульт.Онлайн позволяет отображать статус узлов и экранов по значению указанной переменной. Имя переменной, значение которой будет использоваться для отображения статуса, указывается в свойствах прототипа (Переменная статуса
) и мнемосхемы (Статус | Узел, Переменная
).
Значения переменной интерпретируются следующим образом:
0 - офлайн (серый цвет)
1 - онлайн (голубой цвет)
2 - работа (зеленый цвет)
3 - предупреждение (оранжевый цвет)
4 - авария (красный цвет)
5 - сервис (фиолетовый цвет)
В качестве переменной используйте виртуальную переменную с выражением вида:
status($online,$work,$warning,$alarm,$service)
Здесь аргументами функции status()
являются пять переменных, ненулевые значения которых будут интерпретированы функцией status()
в соответствующий код статуса (0-5
). Имена переменных могут быть произвольными, важен их порядок в списке аргументов. Если какой-то статус неприменим к узлу, соответствующую ему переменную можно заменить нулем или опустить, например:
status($online);
- индикация только онлайн/офлайн статуса
status($online,0,$warning);
- только онлайн/офлайн/предупреждение
status($online,0,0,$alarm);
- только онлайн/офлайн/авария
Значение параметра Недостоверно у статусной переменной необходимо установить в значение Ноль
. Это обеспечит корректную обработку выражения, без возникновения ошибки DRV_ERROR_UNRELIABLE_VAR при ошибке в одной или нескольких наблюдаемых переменных.
Если узел находится за шлюзом (или на шлюзе) переменная статуса должна быть размещена локально (т.е. на стороне сервера). Для этого необходимо принудительно установить свойство Размещение = Локально
.
Рассмотрим использование переменной статуса на примере проекта Приточная вентиляция на демосервере
Создадим виртуальную переменную status
в прототипе Вентсистема
В свойствах переменной status
в поле Режим / Данные выберем Выражение
(значением переменной будет результат вычисления математического выражения), в поле Недостоверно укажем Ноль
(при наличии в выражении недостоверных переменных, их значение берется равным нулю, выражение рассчитывается без генерации ошибки), в поле Разное / Размещение выберем Локально
(переменная продолжит работать при отключении шлюза и сможет индицировать статус "Офлайн").
Используем для составления выражения следующие переменные прототипа (в вашем случае набор переменных может быть другим):
Онлайн узла: metric_up
- стандартная метрическая переменная узла, при 1
- узел на связи
Работа узла: fan_on
- переменная, отвечающая за режим работы вентилятора системы, при 1
- вентилятор включен, при 0
- выключен
Предупреждение: warning_sum
- переменная типа Сводная тревога, принимает в качестве сигнала все тревоги узла, удовлетворяющие фильтрам класса Предупреждение
. Сводная тревога активируется при активации хотя бы одной из наблюдаемых тревог и нормализуется только при нормализации всех наблюдаемых тревог класса Предупреждение
.
Авария: alarm_sum
- переменная типа Сводная тревога, принимает в качестве сигнала все тревоги узла, удовлетворяющие фильтрам класса Авария
. Сводная тревога активируется при активации хотя бы одной из наблюдаемых тревог и нормализуется только при нормализации всех наблюдаемых тревог класса Авария
.
Сервис: service
- переменная, указывающая, находится ли оборудование узла на сервисном обслуживании или нет (1
или 0
)
Выражение переменной status
запишется так: status($metric_up,$fan_on,$warning_sum,$alarm_sum,$service)
В комментарии в свойствах переменной можно указать - Статус работы (0-не на связи,1-на связи,2-работа,3-есть предупреждения,4-есть тревога,5-сервис)
Для индикации статуса узла: в свойствах прототипа Вентсистема в поле Переменная статуса укажем имя нашей статусной переменной: status
(без символа $)
Для индикации статуса экрана: в свойствах мнемосхемы Вентсистема десктоп в поле Статус / Узел укажем узел (определенный в параметрах мнемосхемы), в котором будет находится статусная переменная: node
, а в поле Статус / Переменная - имя статусной переменной: status
.
Сохраним и соберем проекты.
Теперь узлы, созданные на основе прототипа Вентсистема и экраны, на основе мнемосхемы Вентсистема десктоп, будут отображаться в соответствии со значением переменной status
:
Вентсистемы ЩУВ1 и ЩУВ2 на связи и в работе (значение переменной status
равно 2
), а вентситема ЩУВ3 - на связи и выключена (значение переменной status
равно 0
). Аналогичная индикация применяется и к экранам вентсистем.
В прототипе Вентсистема заведена и выбрана в качестве статуса узла виртуальная переменная status
В мнемосхеме Вентсистема десктоп переменная status
указана в разделе свойств Статус.
Индикация узлов и экранов отображается в проекте Приточная вентиляция.